plyr package

https://cran.r-project.org/web/packages/plyr/plyr.pdf
plyr 은 apply 함수를 기반으로 데이터를 분리하고 다시 결합하는 데이터 처리 기능을 제공한다.
apply(), ddply(), ...
plyr은 입력되는 데이터 구조와 출력되는 데이터 구조에 따라 여러가자 함수를 지원한다.
입력 데이터 구조
데이터 프레임 리스트 배열
출력 데이터
구조
데이터 프레임 ddply ldply adply
리스트 dlply llply alply
배열 daply laply aaply

> score

  class math english

1     A   50      70

2     A   70      80

3     B   60      60

4     B   90      80

> library(plyr)


#summarize: 데이터 요약, transform: 기존 데이터에 추가

> ddply(score, 'class', summarise, math_avg=mean(math), eng_avg=mean(english))

  class math_avg eng_avg

1     A       60      75

2     B       75      70


> ddply(score, 'class' ,transform, math_avg=mean(math), eng_avg=mean(english))

  class math english math_avg eng_avg

1     A   50      70       60      75

2     A   70      80       60      75

3     B   60      60       75      70

4     B   90      80       75      70


> data

  year month value

1 2012     1     3

2 2012     1     5

3 2012     2     7

4 2012     2     9

5 2013     1     1

6 2013     1     5

7 2013     2     4

8 2013     2     6


> ddply(data, c('year', 'month'), summarise, value_avg=mean(value))

  year month value_avg

1 2012     1         4

2 2012     2         8

3 2013     1         3

4 2013     2         5


> ddply(data, c('year', 'month'), function(x){

+ value_avg=mean(x$value)

+ value_sd=sd(x$value)

+ data.frame(avg_sd=value_avg/value_sd)

+ })

  year month   avg_sd

1 2012     1 2.828427

2 2012     2 5.656854

3 2013     1 1.060660

4 2013     2 3.535534